home *** CD-ROM | disk | FTP | other *** search
INI File | 1997-08-08 | 54.6 KB | 1,855 lines |
- DefineVariables
- Text [ProductFamily]
- ;;Space requirements for each sub-category of files
- Text [ExeSpace]
- Text [LibSpace]
- Text [CfgSpace]
- Text [ExaSpace]
- ;;Root directory for each sub-category of files
- Text [DefaultDirectory]
- Text [FromDirectory]
- Text [ExeDirectory]
- Text [LibDirectory]
- Text [CfgDirectory]
- Text [ExaDirectory]
- Text [OptDirectory]
- Text [IniDirectory]
- Text [SetupDirectory]
- Text [ProductDirectory]
- Text [LicenseDirectory]
- ;; Text Strings for passing info between Pre and Post install procedures
- Text [SemiDirectory]
- Text [SemiIniFile]
- Text [SemiString]
- Logical [SemiControl]
- ;;Version information for comparison by install
- Text [OriginalVersion]
- Text [NewVersion]
- Logical [Continue]
- Logical [ModifyFiles]
- ;;Context that is required for this product to install
- Text [ContextName]
- Text [ContextDescription]
- ;;String to display in title bars
- Text [ProductName]
- Text [ProductDescription]
- Text [ModelNumber]
- ;;Context information
- Text [StringPrefix]
- Text [StringVersion]
- Text [StringName]
- ;;Filename of Product License Template (to be merged into DIOREG.DAT)
- Text [ProductLicenseTemplate]
- ;; Product information used when parsing the product.ini file
- Text [ProductKey]
- Text [ProductValue]
- Text [ProductBegin]
- Text [ProductPreInstall]
- Text [ProductInstall]
- Text [ProductPostInstall]
- Text [ProductEnd]
- Text [ProgramGroupName]
- ;; Component information used when parsing the product.ini file
- Text [ComponentKey]
- Text [ComponentValue]
- Text [ComponentName]
- Text [ComponentLibrary]
- Text [ComponentFunction]
- Text [InstallProcedure]
- Text [BuildVersionProc]
- Text [BuildNumber]
- Number [DiskNumber]
- ;; Variables used when parsing the ini files
- Text [GeneralKey]
- Text [GeneralValue]
- ;;
- Text [NewDll]
- EndDefineVariables
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Main
- ;;
-
-
- SetBackgroundColor 0 0 255 0 0 255
- SetBackgroundModeTo Transparent
- ShowWindow Maximized
- SetBackupModeTo BAK
- SetTopLineTo "Synario Design Automation Installation"
-
- SetMouseCursor Wait
-
- [ProgramGroupName] := "ABEL 6.5" ;; Default to ABEL
- If [CommandLine2] = abel ;; Display ABEL product bitmap
- LoadBitMap 1 abelins.bmp
- Else
- If [CommandLine2] = ablsngl ;; Bitmap for Single Vendor ABEL
- LoadBitMap 1 abelins.bmp
- Else ;; Display Synario product bitmap
- LoadBitMap 1 synins.bmp ;; for SECS and Single Vendor
- [ProgramGroupName] := "Synario 3.1" ;; Set Prog Group Name
- EndIf
- EndIf
- ShowBitMap 1 @xy(0,0)
-
- ;; The configuration files are placed in the TEMP directory
- [IniDirectory] := EnvironmentStringFor TEMP
- If [IniDirectory] = BlankString
- Dialog UseHeader "Error"
- Error
- Environment variable TEMP is not set.
- Could not find the Customer Configuration file.
- EndDialog
-
- Do ErrorFreeScript
- Goto [Point1]
- EndIf
-
- Do SetProductDirectory
-
- [ProductFamily] := [CommandLine2] ;; will be abel or synario
- [SetupDirectory] := [InstallFromDirectory]
-
- If FileExists [IniDirectory]\[ProductFamily].ini
-
- [ProductKey] := PROD1 ;; Always start at first product
- [Number2] := 1 ;; Keep count with Prod numbers
- [Number3] := 1 ;; Keep track of Tens of products
-
- ;; Look for product section in the customer configuration file
- [GeneralKey] := "NAME"
- Do GetProductKeyValue
- [ProductValue] := [GeneralValue]
- [ProductName] := [GeneralValue]
-
- ;; Check to see if product was found in configuration file
- If [ProductValue] = BlankString
- Dialog UseHeader "Error"
- Error
- Could not find any Products to install in
- the Customer Configuration file.
- EndDialog
-
- Do ErrorFreeScript
- Goto [Point1]
- EndIf
-
- ;; Call routine to uncompress installs compressed library
- Do InitializeInstall
- SetMouseCursor Arrow
-
- ;; Initialize global variables for the overall product context
- Do GetContextSectionInfo
-
- ;; Began looping to install all products listed in config file
- [YesOrNo1] := YesCharacter
- while [YesOrNo1] = YesCharacter
-
- ;; Now should have Products Name, get rest of info in section
- Do GetProductSectionInfo
-
- [ProductValue] := [FromDirectory]
-
- ;; Set the Directory path from which files will be pulled from
- [InstallFromDirectory] := [ProductDirectory]\[FromDirectory]
-
- ;; InstallFromDrive is suppose to be set automatically, but does not work
- [InstallFromDrive] := SubStringOf [InstallFromDirectory] from Beginning to 1
-
- ;; Now Call procedure to BEGIN installing particular product
- Do [ProductBegin]
-
- If [ProductPreInstall] <> BlankString
- ;; Call procedure for any pre-install things to do
- Do [ProductPreInstall]
- Endif
-
- ;; BOOL used to determine if the MergeLicense proc has been called yet
- [YesOrNo4] := NoCharacter
- [DiskNumber] := 1
-
- ;; Call procedure to read all Product Components and install the
- ;; Compressed libraries for each. This procedure calls the main
- ;; [ProductInstall] procedure as defined in the configuration file.
- Do InstallComponents
-
- If [ProductPostInstall] <> BlankString
- ;; Call procedure for any post-install things to do
- Do [ProductPostInstall]
- EndIf
-
- ClearScreen
-
- ;; Call procedure to END installing particular product
- Do [ProductEnd]
-
- ;; Look for another product in configuration file
- IncrementNumber [Number2] ;; Bump up number
- If [Number2] == 10 ;; Ten is a magic number
- If [Number3] == 1
- [ProductKey] := PROD10
- Else
- If [Number3] == 2 ;; More than 20 selected
- [ProductKey] := PROD20
- Else ;; More than 30 selected
- [ProductKey] := PROD30
- EndIf
- EndIf ;; 39 products selected is limit
-
- [Number2] := 0
- IncrementNumber [Number3]
- Else
- IncrementString [ProductKey] ;; This should build PRODx
- EndIf
-
- ;; Look for next product section in the customer config file
- [GeneralKey] := "NAME"
- Do GetProductKeyValue
- [ProductValue] := [GeneralValue]
- [ProductName] := [GeneralValue]
-
- ;; Check to see if product was found in configuration file
- [YesOrNo1] := YesCharacter
- If [ProductValue] = BlankString
- [YesOrNo1] := NoCharacter
- Else
- ;; Following commands solve problems with program manager on Win 95
- If WindowsVersion >= 3.9
- Dialog 1000 UseHeader "Install"
- Installing...
- EndDialog
- EndIf
- EndIf
-
- EndWhile
-
- [InstallFromDirectory] := [SetupDirectory]
- ;; If Win32s v1.30 can not be found, display a message (Win 3.1 only)
- Do CheckForWin32s130
-
- Else
- Dialog UseHeader "Error"
- Error
- Could not find Customer Configuration file.
- EndDialog
-
- Do ErrorFreeScript
- Goto [point1]
- Endif
-
- Do FinishedMessage
-
- Do FreeScript ;; Will try to run the registration editor
-
- [Point1] ;; Goto point incase of configuration file problems
-
- SoLong
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will peel off the directory path from the command line
- ;; variable that holds the master.inf file path. The ProductDirectory
- ;; can be a CD drive, Floppy or Network drive letter
- ;;
- Procedure SetProductDirectory
-
- [Number1] := PositionOf "master.inf" in [CommandLine1]
- If [Number1] > 2
- [Number1] := [Number1] - 1
- [ProductDirectory] := SubStringOf [CommandLine1] from Beginning to [Number1]
- Else
- Dialog UseHeader "Error"
- Error
- Could not determine the directory that contains
- the product files.
- EndDialog
-
- Do ErrorFreeScript
- Goto [Point1] ;;
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed to copy the required
- ;; installation files (generaly dll's) in to the proper location
- ;;
- Procedure InitializeInstall
-
- ;; Set the Directory path from which files will be pulled from
- [InstallFromDirectory] := [SetupDirectory]\Install
-
- InstallSeries Install promptfor "Please insert disk number 1 in drive [InstallFromDrive]:"
-
- Do QueToShadowDirectory ;; Setup Install files
- Do CheckForExtraDlls ;; Checks for install dlls in memory
-
- Do SetupCTL3D ;; Copy DLLs around
- Do InitScript ;; setup background
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will read all the context information from the customer
- ;; configuration file and assign it to global variables
- ;;
- Procedure GetContextSectionInfo
-
- [GeneralKey] := "CONTEXTNAME"
- Do GetContextKeyValue
- [ContextName] := [GeneralValue]
-
- [GeneralKey] := "CONTEXTDESC"
- Do GetContextKeyValue
- [ContextDescription] := [GeneralValue]
-
- [GeneralKey] := "DEFAULTDIR"
- Do GetContextKeyValue
- [DefaultDirectory] := [GeneralValue]
-
- [GeneralKey] := "PREFIX"
- Do GetContextKeyValue
- [StringPrefix] := [GeneralValue]
-
- [GeneralKey] := "VERSION"
- Do GetContextKeyValue
- [StringVersion] := [GeneralValue]
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure to read a string from the Context section of the customer
- ;; configuration file
- ;;
- Procedure GetContextKeyValue
-
- ;; Look for context section in the customer configuration file
- [Array1][1] := CONTEXT.[ProductFamily]
- [Array1][2] := [GeneralKey] ;; Keyword
- [Array1][3] := BlankString ;; Default value
- [Array1][4] := [IniDirectory]\[ProductFamily].ini ;; Config file name
-
- GetPrivateProfileString Using [Array1] ;; Read file
-
- [GeneralValue] := [Array1][5] ;; Value is placed here
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will read all the product information from the customer
- ;; configuration file and assign it to global variables
- ;;
- Procedure GetProductSectionInfo
-
- [GeneralKey] := "FROMDIR"
- Do GetProductKeyValue
- [FromDirectory] := [GeneralValue]
-
- [GeneralKey] := "MODEL"
- Do GetProductKeyValue
- [ModelNumber] := [GeneralValue]
-
- [GeneralKey] := "LICENSE"
- Do GetProductKeyValue
- [ProductLicenseTemplate] := [GeneralValue]
-
- [GeneralKey] := "DESCRIPTION"
- Do GetProductKeyValue
- [ProductDescription] := [GeneralValue]
-
- [GeneralKey] := "BEGIN"
- Do GetProductKeyValue
- [ProductBegin] := [GeneralValue]
-
- [GeneralKey] := "PRE"
- Do GetProductKeyValue
- [ProductPreInstall] := [GeneralValue]
-
- [GeneralKey] := "INSTALL"
- Do GetProductKeyValue
- [ProductInstall] := [GeneralValue]
-
- [GeneralKey] := "POST"
- Do GetProductKeyValue
- [ProductPostInstall] := [GeneralValue]
-
- [GeneralKey] := "END"
- Do GetProductKeyValue
- [ProductEnd] := [GeneralValue]
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure to read a string from the Product section of the customer
- ;; configuration file
- ;;
- Procedure GetProductKeyValue
-
- ;; Look for product section in the customer configuration file
- [Array1][1] := PRODUCT.[ProductFamily]
- [Array1][2] := [ProductKey].[GeneralKey] ;; Keyword
- [Array1][3] := BlankString ;; Default value
- [Array1][4] := [IniDirectory]\[ProductFamily].ini ;; Config file name
-
- GetPrivateProfileString Using [Array1] ;; Read file
-
- [GeneralValue] := [Array1][5] ;; Value is placed here
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure to read a string from the Component section of the customer
- ;; configuration file
- ;;
- Procedure GetComponentKeyValue
-
- ;; Look for product section in the customer configuration file
- [Array2][1] := COMPONENT.[ProductFamily].[ProductKey]
- [Array2][2] := [ComponentKey].[GeneralKey] ;; Keyword
- [Array2][3] := BlankString ;; Default value
- [Array2][4] := [IniDirectory]\[ProductFamily].ini ;; Config file name
-
- GetPrivateProfileString Using [Array2] ;; Read file
-
- [GeneralValue] := [Array2][5] ;; Value is placed here
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Will read the component section. The procedure Requires that the
- ;; string [ProductInstall] be set first. The ProductInstall procedure is
- ;; the product specific piece that knows about product groupings.
- ;;
- Procedure InstallComponents
-
- [ComponentKey] := COMP1 ;; Always start at first Component
-
- ;; Look for Component section in the customer configuration file
- [GeneralKey] := "NAME"
- Do GetComponentKeyValue
- [ComponentName] := [GeneralValue]
-
- ;; Look for libraries in the Component section of the config file
- [GeneralKey] := "LIBRARY"
- Do GetComponentKeyValue
- [ComponentValue] := [GeneralValue]
-
- ;; Check to see if component was found in configuration file
- If [ComponentValue] = BlankString
- Dialog UseHeader "Error"
- Error
- Could not find any Component Libraries
- in the Customer Configuration file.
- EndDialog
-
- Goto [Point2]
- EndIf
-
- ;; Began looping to install all components for ABEL product
- [YesOrNo2] := YesCharacter
- while [YesOrNo2] = YesCharacter
-
- ;; Begin loop to pull off all compressed library names from component
- ;; section
- [DiskNumber] := 1
-
- [InstallProcedure] := [ProductInstall]
- ;; call procedure to loop through all library names on LIBRARY line
- Do ProcessLibraries
-
- IncrementNumber [DiskNumber]
-
- ;; Look for a special Options Library for current component
- [GeneralKey] := "OPTLIB"
- Do GetComponentKeyValue ;; look for component.OPTLIB
- [ComponentValue] := [GeneralValue]
-
- ;; Check to see if Component was found in configuration file
- If [ComponentValue] <> BlankString
-
- [InstallProcedure] := "OptionInstallFiles" ;; currently hard coded
- ;; call procedure to loop through all library names on OPTLIB line
- Do ProcessLibraries
-
- IncrementNumber [DiskNumber]
-
- EndIf
-
- ;; Look for another Component in configuration file
- IncrementString [ComponentKey] ;; This should build COMPx
-
- ;; Look for Componen.Name in the customer configuration file
- [GeneralKey] := "NAME"
- Do GetComponentKeyValue
- [ComponentName] := [GeneralValue]
-
- [GeneralKey] := "LIBRARY"
- Do GetComponentKeyValue
- [ComponentValue] := [GeneralValue]
-
- ;; Check to see if Component was found in configuration file
- If [ComponentValue] = BlankString
- [YesOrNo2] := NoCharacter
- EndIf
-
- EndWhile
-
- [Point2] ;; Goto point incase of configuration file problems
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will parse the library name string and call the correct
- ;; install procedure to install the library
- ;;
- Procedure ProcessLibraries
-
- ;; Begin loop to pull off all compressed library names from component
- ;; section These libaries can be from the LIBRARY or OPTLIB assignments
- [YesOrNo3] := YesCharacter
- while [YesOrNo3] = YesCharacter
-
- [ComponentLibrary] := BlankString
-
- ;; Get product information out of configuration file
- [Number1] := PositionOf "," in [ComponentValue]
- If [Number1] > 0
- DecrementNumber [Number1]
- [ComponentLibrary] := SubStringOf [ComponentValue] from Beginning to [Number1]
-
- IncrementNumber [Number1] ;; Get back to the Comma
- IncrementNumber [Number1] ;; Move to next character after Comma
- ;; trim first libray name and comma off the list
- [ComponentValue] := SubStringOf [ComponentValue] from [Number1] to End
- Else
- ;; This is the last library name in the comma separated list
- [ComponentLibrary] := [ComponentValue]
- [YesOrNo3] := NoCharacter
- EndIf
-
- [Number1] := MaxY ;; Get the maximum vertical screen dimension
- If [Number1] = 600 ;; If low resolution mode, change TextBox location
- [Number1] := 92
- Else
- [Number1] := 210
- Endif
-
- ;; The string [ProductValue] is same as directory name that contains
- ;; the current products installation files
- If DriveIsCDROM [InstallFromDrive]
- TextBox @xy(Center,[Number1]) BlackOnLightGray UseHeader "Product: [ProductName]"
- Installing files for Option: [ComponentName]
- EndTextBox
- Else
- If DriveIsRemoveable [InstallFromDrive]
- TextBox @xy(Center,[Number1]) BlackOnLightGray UseHeader "Product: [ProductName]"
- Installing files for floppy DiskSet: [ComponentLibrary]
- EndTextBox
- Else
- TextBox @xy(Center,[Number1]) BlackOnLightGray UseHeader "Product: [ProductName]"
- Installing files for Option: [ComponentName]
- EndTextBox
- Endif
- Endif
-
- ;; Now setup the new compressed library name, multiple compressed libraries
- ;; in a component statement are to be on the same floppy disk
- InstallSeries [ComponentLibrary] promptfor "Please insert disk number [DiskNumber] in drive [InstallFromDrive]:"
-
- If [YesOrNo4] = NoCharacter
- ;; Call the procedure to merge the license files
- Do MergeLicense
- [YesOrNo4] := YesCharacter
- EndIf
-
- ;; Call the product specific procedure to handle the individual
- ;; compressed libraries for the current Product
- Do [InstallProcedure]
-
- ClearScreen
-
- EndWhile
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed to BEGIN installing
- ;; a product
- ;;
- Procedure GeneralProductBegin
-
- ;; Made change to InstallDllQuestion so that it will not ask the user
- ;; the QUESTION of where to install this stuff
- ;;
- [String1] := "F"
- CallDLL [DLL1] InstallDllQuestion [String1] [ContextName] [ContextDescription] [DefaultDirectory] [ExeDirectory] [LibDirectory] [CfgDirectory] [ExaDirectory] [ExeSpace] [LibSpace] [CfgSpace] [ExaSpace]
- Do CheckForQuit
-
- If FileExists [ExeDirectory]\[ProductValue].EXE
- Dialog [YesOrNo1] UseHeader "Warning"
- [ProductName] installation has detected a previous installation
- of [ProductName]. Should installation continue?
- EndDialog
-
- If [YesOrNo1] = N
- Do ErrorFreeScript
- SoLong
- EndIf
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed to BEGIN installing
- ;; a option (usually device kits)
- ;;
- Procedure GeneralOptionBegin
-
- Do CheckForEntry ;; Check for Entry Product
-
- ;; Made change to InstallDllOption so that it will not display the
- ;; location of where to install this stuff
- ;;
- [String1] := "F"
- CallDLL [DLL1] InstallDllOption [String1] [ContextName] [ProductDescription] [DefaultDirectory] [ExeDirectory] [LibDirectory] [CfgDirectory] [ExaDirectory] [ExeSpace] [LibSpace] [CfgSpace] [ExaSpace]
- Do CheckForQuit
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed to install the files
- ;; from the compressed libraries
- ;;
- Procedure SynarioInstallFiles
-
- [InstallationDirectory] := [ExeDirectory]
- QueFileGroup 1
- Do InstallFileGroup
-
- [InstallationDirectory] := [LibDirectory]
- QueFileGroup 2
- Do InstallFileGroup
-
- [InstallationDirectory] := [CfgDirectory]
- QueFileGroup 3
- Do InstallFileGroup
-
- [InstallationDirectory] := [ExaDirectory]
- QueFileGroup 4
- Do InstallFileGroup
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed to install the files
- ;; from the compressed libraries
- ;;
- Procedure AbelInstallFiles
-
- [InstallationDirectory] := [ExeDirectory]
- QueFileGroup 5
- Do InstallFileGroup
-
- [InstallationDirectory] := [LibDirectory]
- QueFileGroup 6
- Do InstallFileGroup
-
- [InstallationDirectory] := [CfgDirectory]
- QueFileGroup 7
- Do InstallFileGroup
-
- [InstallationDirectory] := [ExaDirectory]
- QueFileGroup 8
- Do InstallFileGroup
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed to install the files
- ;; from the compressed libraries
- ;;
- Procedure SecsInstallFiles
-
- [InstallationDirectory] := [ExeDirectory]
- QueFileGroup 9
- Do InstallFileGroup
-
- [InstallationDirectory] := [LibDirectory]
- QueFileGroup 10
- Do InstallFileGroup
-
- [InstallationDirectory] := [CfgDirectory]
- QueFileGroup 11
- Do InstallFileGroup
-
- [InstallationDirectory] := [ExaDirectory]
- QueFileGroup 12
- Do InstallFileGroup
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed to install the files
- ;; from the optional compressed libraries
- ;;
- Procedure OptionInstallFiles
-
- ;; Attempt to install any standard product pieces first
- If [ProductFamily] = synario
- Do SynarioInstallFiles
- Else
- If [ProductFamily] = synsngl
- Do SynarioInstallFiles
- Else
- If [ProductFamily] = abel
- Do AbelInstallFIles
- Else
- If [ProductFamily] = ablsngl
- Do AbelInstallFiles
- Else
- Do SecsInstallFiles
- EndIf
- EndIf
- EndIf
- EndIf
-
- ;; After standard files, install all files into [OptDirectory]
- ;; These files must be tagged with goup number 99
-
- If DirectoryExists [OptDirectory]
-
- ;; Need to set the [OptDirectory] path before calling install procedure
- ;; Normally this path will be in the Registry and should be set in the
- ;; ProductPreInstallFiles procedure
-
- [InstallationDirectory] := [OptDirectory]
- QueFileGroup 20
- Do InstallFileGroup
-
- Else
- Dialog UseHeader "Error"
- Error
- The installation directory: [OptDirectory] does not exist.
- EndDialog
-
- Do ErrorFreeScript
- Goto [point1]
-
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed to END installing
- ;; a product
- ;;
- Procedure GeneralProductEnd
-
- ;; Currently do nothing here
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed perfrom something before
- ;; installing the compressed product files
- ;;
- Procedure ISPStartPreInstallFiles
-
- ;; Call procedure to install MFC redistributed DLL's
- Do InstallMFCredist
-
- [SemiDirectory] := EnvironmentStringFor PDSPLUS
- [String1] := " "
- [String2] := "PDSPath"
- [String3] := "%PDSPLUS%"
- CallDLL [DLL1] InstallDllRegisterPath [String1] [ContextName] [String2] [String3]
-
- Do CheckForQuit
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed perfrom something before
- ;; installing the compressed product files
- ;;
- Procedure ISPSystemPreInstallFiles
-
- Do ISPStartPreInstallFiles
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed perfrom something before
- ;; installing the compressed product files
- ;;
- Procedure ISPVHDLPreInstallFiles
-
- Do ISPStartPreInstallFiles
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed perfrom something before
- ;; installing the compressed product files
- ;;
- Procedure ISPStartPostInstallFiles
-
- ProgramManagerDDE
- CreateGroup(ISP Synario)
- ShowGroup(ISP Synario,1)
- ReplaceItem(ISP Synario)
- AddItem([ExeDirectory]\SYNPLSI.EXE,ISP Synario,[ExeDirectory]\SYNPLSI.EXE)
- ReplaceItem(ISP Synario Readme)
- AddItem([ExeDirectory]\README\READSTR.WRI,ISP Synario Readme,[ExeDirectory]\README\readstr.wri)
- EndProgramManagerDDE
-
- Do OSspecificLibMgr
- Do OSspecificSynDos
- Do CopyStartLicense
-
- RegSetValue ClassesRoot .SYN\shell\open\command [ExeDirectory]\SYNPLSI.EXE %1
-
- Do ISPRegistry
- Do CheckForQuit
-
-
- [Array5][1] := Controls
- [Array5][2] := Simulator
- [Array5][3] := SimCP
- [Array5][4] := [CfgDirectory]\ECS.INI
- WritePrivateProfileString Using [Array5]
-
- Do RegisterDIOxfer
-
- EndProcedure
-
- Procedure EntryAddHelp
-
- SetCopyAttrTo 00
- CopyTree from [ProductDirectory]..\readme to [ExeDirectory]\readme
- ProgramManagerDDE
- ReplaceItem(ReadMe)
- AddItem([ExeDirectory]\readme\readme.hlp, ReadMe, [ExeDirectory]\readme\readme.hlp)
-
- ReplaceItem(Release Notes)
- AddItem([ExeDirectory]\readme\filelist.pdf, Release Notes, [ExeDirectory]\readme\filelist.pdf)
- EndProgramManagerDDE
-
- EndProcedure
-
- Procedure OSspecificLibMgr
-
- If (WindowsNT) .OR. (WindowsVersion >= 3.9) ;; if WinNT or Win95
- DeleteFiles from [ExeDirectory] {Quietly}
- libmgr.exe
- EndDeleteFiles
- RenameFile [ExeDirectory]\libmgr32.exe to libmgr.exe
- else
- DeleteFiles from [ExeDirectory] {Quietly}
- libmgr32.exe
- EndDeleteFiles
- EndIf
-
- EndProcedure
-
- Procedure OSspecificSynDos
-
- If WindowsVersion >= 3.9 ;; if Win95
- DeleteFiles from [ExeDirectory] {Quietly}
- syndos.pif
- EndDeleteFiles
- RenameFile [ExeDirectory]\syndos95.pif to syndos.pif
- else
- DeleteFiles from [ExeDirectory] {Quietly}
- syndos.pif
- EndDeleteFiles
- RenameFile [ExeDirectory]\syndos31.pif to syndos.pif
- EndIf
-
- EndProcedure
-
- Procedure CopyStartLicense
-
- DeleteFiles from [LicenseDirectory] {Quietly}
- lic00000.dat
- EndDeleteFiles
- RenameFile [LicenseDirectory]\licstart.dat to lic00000.dat
-
- EndProcedure
-
- Procedure ISPRegistry
- [String1] := " "
- [String2] := "ProductTitle"
- [String3] := "ISP Synario"
- CallDLL [DLL1] InstallDllRegisterSpecific [String1] [ContextName] [String2] [String3]
-
- [SemiDirectory] := Stub out Manuals, Tutorials, Application Notes
- [String1] := " "
- [String2] := "Tutorial"
- [String3] := "%PDSPLUS%\config"
- CallDLL [DLL1] InstallDllRegisterPath [String1] [ContextName] [String2] [String3]
- [String1] := " "
- [String2] := "Appnotes"
- [String3] := ""
- CallDLL [DLL1] InstallDllRegisterPath [String1] [ContextName] [String2] [String3]
- EndProcedure
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed perfrom something before
- ;; installing the compressed product files
- ;;
- Procedure ISPSystemPostInstallFiles
-
- ProgramManagerDDE
- CreateGroup(ISP Synario)
- ShowGroup(ISP Synario,1)
- ReplaceItem(ISP Synario)
- AddItem([ExeDirectory]\SYNPLSI.EXE,ISP Synario,[ExeDirectory]\SYNPLSI.EXE)
- ReplaceItem(ISP Synario Readme)
- AddItem([ExeDirectory]\README\READSYS.WRI,ISP Synario Readme,[ExeDirectory]\README\readsys.wri)
-
- EndProgramManagerDDE
-
- Do OSspecificLibMgr
- Do OSspecificSynDos
- Do CopySystemLicense
-
- RegSetValue ClassesRoot .SYN\shell\open\command [ExeDirectory]\SYNPLSI.EXE %1
-
- Do ISPRegistry
- Do CheckForQuit
-
- [Array5][1] := Controls
- [Array5][2] := Simulator
- [Array5][3] := SimCP
- [Array5][4] := [CfgDirectory]\ECS.INI
- WritePrivateProfileString Using [Array5]
-
- Do RegisterDIOxfer
-
- EndProcedure
-
- Procedure OSspecificSynDos
-
- If WindowsVersion >= 3.9 ;; if Win95
- DeleteFiles from [ExeDirectory] {Quietly}
- syndos.pif
- EndDeleteFiles
- RenameFile [ExeDirectory]\syndos95.pif to syndos.pif
- else
- DeleteFiles from [ExeDirectory] {Quietly}
- syndos.pif
- EndDeleteFiles
- RenameFile [ExeDirectory]\syndos31.pif to syndos.pif
- EndIf
-
- EndProcedure
-
- Procedure CopySystemLicense
-
- DeleteFiles from [LicenseDirectory] {Quietly}
- lic00000.dat
- EndDeleteFiles
- RenameFile [LicenseDirectory]\licsystm.dat to lic00000.dat
-
- EndProcedure
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure will execute the statements needed perfrom something before
- ;; installing the compressed product files
- ;;
- Procedure ISPVHDLPostInstallFiles
-
- ProgramManagerDDE
- CreateGroup(ISP Synario)
- ShowGroup(ISP Synario,1)
- ReplaceItem(ISP Synario)
- AddItem([ExeDirectory]\SYNPLSI.EXE,ISP Synario,[ExeDirectory]\SYNPLSI.EXE)
- ReplaceItem(ISP Synario Readme)
- ReplaceItem(ISP Synario Readme)
- AddItem([ExeDirectory]\README\READVHD.WRI,ISP Synario Readme,[ExeDirectory]\README\readvhd.wri)
- EndProgramManagerDDE
-
- Do OSspecificLibMgr
- Do OSspecificSynDos
- Do CopyVHDLLicense
-
- RegSetValue ClassesRoot .SYN\shell\open\command [ExeDirectory]\SYNPLSI.EXE %1
-
- Do ISPRegistry
- Do CheckForQuit
-
- [Array5][1] := Controls
- [Array5][2] := Simulator
- [Array5][3] := SimCP
- [Array5][4] := [CfgDirectory]\ECS.INI
- WritePrivateProfileString Using [Array5]
-
- Do RegisterDIOxfer
-
- EndProcedure
-
- Procedure OSspecificSynDos
-
- If WindowsVersion >= 3.9 ;; if Win95
- DeleteFiles from [ExeDirectory] {Quietly}
- syndos.pif
- EndDeleteFiles
- RenameFile [ExeDirectory]\syndos95.pif to syndos.pif
- else
- DeleteFiles from [ExeDirectory] {Quietly}
- syndos.pif
- EndDeleteFiles
- RenameFile [ExeDirectory]\syndos31.pif to syndos.pif
- EndIf
-
- EndProcedure
-
- Procedure CopyVHDLLicense
-
- DeleteFiles from [LicenseDirectory] {Quietly}
- lic00000.dat
- EndDeleteFiles
- RenameFile [LicenseDirectory]\licvhdl.dat to lic00000.dat
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Beginning of General Procedures here
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Procedure shows the build version number for the product
- ;;
- Procedure ShowBuildVersion
-
- ;; This procedure is not needed, as the build nos can be seen from DIOREG
- ;; We still retain this procedure because, a lot of preproc.inc files
- ;; reference this procedure
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure DDENonfatalErrorTrap
- [Number9] := PositionOf "ShowGroup" in DDENonFatalError
- If [Number9] > 0
- Dialog UseHeader "Warning"
- Install is not able to switch to the
- Program group. You may have reached the limit
- of Program Manager groups. Icons will be made
- in the current Program Manager group.
- EndDialog
- EndIf
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure InstallFileGroup
- If FreeSpaceOnDrive InstallationDrive <= QueSize
- Dialog UseHeader "Warning"
- There may not be enough free space to install files.
- EndDialog
- EndIf
-
- SetMouseCursor Wait
-
- GetQuedFiles
- UnQueAllFiles
- SetMouseCursor Arrow
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure CheckForExtraDlls
- [String1] := " "
- [String3] := " "
- LoadDll [Dll2] ShadowDirectory\INSTDLL.DLL
- CallDLL [DLL2] InstallDllSecondInstall [String1]
- CallDLL [DLL2] InstallDllCheckForDos [String3]
- UnloadDll [Dll2]
-
- If "[String1]" = Error
- Dialog UseHeader "Error"
- Error
- Previous install detected.
- Run only one install at a time.
- EndDialog
- SoLong
- EndIf
-
- [String1] := " "
- [String2] := " "
- LoadDll [Dll2] ShadowDirectory\INSTDLL.DLL
- CallDLL [DLL2] InstallDllInstallDlls [String1] [String2]
- UnloadDll [Dll2]
-
- If "[String1]" = "Error"
- Dialog UseHeader "Error"
- [String2]
- must be closed before running SETUP.EXE
- EndDialog
- SoLong
- EndIf
-
- [Number1] := PositionOf "Q" in [String3]
- If [Number1] <> 0
- SoLong
- EndIf
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure QueToShadowDirectory
- [InstallationDirectory] := ShadowDirectory
- QueFileGroup 14
- GetQuedFiles Quietly
- QueFiles
- CTL3D.DL0
- EndQueFiles
- GetQuedFiles Quietly
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure DeleteFromShadowDirectory
- [String9] := ShadowDirectory
- DeleteFiles from [String9]
- INSTDLL.DLL
- WINEXEC.DLL
- CTL3D.DL0
- DIOEDA.DLL
- CHKVER.EXE
- EndDeleteFiles
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure QueOption
- [InstallationDirectory] := ShadowDirectory
-
- SetMouseCursor Wait
-
- QueFileGroup 14
- GetQuedFiles Quietly
-
- SetMouseCursor Arrow
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure SetupCTL3D
-
- If FileExists [WindowsSystemDirectory]\CTL3D.DLL
-
- [NewVersion] := FileVersionOf ShadowDirectory\CTL3D.DL0
- [OriginalVersion] := FileVersionOf [WindowsSystemDirectory]\CTL3D.DLL
- If [NewVersion] > [OriginalVersion]
-
- ;;CopyFiles from ShadowDirectory to [WindowsSystemDirectory] Quietly
- SetCopyAttrTo 00
- CopyFiles from ShadowDirectory to [WindowsSystemDirectory]
- CTL3D.DL0 as CTL3D.DLL
- EndCopyFiles
- SetCopyAttrTo 01
-
- EndIF
-
- Else
-
- ;; CopyFiles from ShadowDirectory to [WindowsSystemDirectory] Quietly
- SetCopyAttrTo 00
- CopyFiles from ShadowDirectory to [WindowsSystemDirectory]
- CTL3D.DL0 as CTL3D.DLL
- EndCopyFiles
- SetCopyAttrTo 01
-
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- ;; Called after calling a DLL function
- Procedure CheckForQuit
- [Number1] := PositionOf "Q" in [String1]
- If [Number1] <> 0
- CallDLL [DLL1] InstallDllCtl3dUnregister [String1]
- UnloadDLL [DLL3]
- UnloadDLL [DLL1]
- SoLong
- EndIf
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure CheckForEntry
-
- [String2] := " "
- CallDLL [DLL1] InstallDllCheckForEntryQuietly [String1] [ContextName] [String2]
- [Number1] := PositionOf "Q" in [String1]
- If [Number1] <> 0
- Dialog UseHeader "Error"
- Cannot find [ContextDescription] installation.
- Install [ContextDescription] before [ProductName].
- EndDialog
- Do ErrorFreeScript
- SoLong
- EndIf
-
- If DirectoryExists [String2]
- Else
- Dialog UseHeader "Error"
- Cannot find [ContextDescription] installation.
- Install [ContextDescription] before [ProductName].
- EndDialog
- Do ErrorFreeScript
- SoLong
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure CheckForVersion
-
- [String2] := " "
- CallDLL [DLL1] InstallDllCheckForVer [String1] [ContextName] [String2]
-
- If "[StringVersion]" > "[String2]"
-
- Dialog UseHeader "Installation Error"
- [ProductName] installation requires at least
- [StringName] [StringVersion]. Please, install
- [StringName] [StringVersion] before [ProductName].
- EndDialog
- Do ErrorFreeScript
- SoLong
-
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure InitScript
-
- [ExeDirectory] := " "
- [LibDirectory] := " "
- [CfgDirectory] := " "
- [ExaDirectory] := " "
- [LicenseDirectory] := " "
-
- LoadDLL [DLL1] ShadowDirectory\INSTDLL.DLL
- LoadDLL [DLL3] [WindowsSystemDirectory]\CTL3D.DLL
- CallDLL [DLL1] DllCtl3dRegister [String1]
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure CleanupDll
-
- CallDLL [DLL1] InstallDllCtl3dUnregister [String1]
- UnloadDLL [DLL1]
- UnloadDLL [DLL3]
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure FreeScript
-
- If FileExists [ExeDirectory]\DIOREG.EXE
- If (WindowsNT)
- Dialog [YesOrNo1] UseHeader "Install"
- The Synario Design Automation 'Registration Editor' must be
- run after you have installed all of the software you wish to
- use. The Security Key device drivers must have been installed
- before running the Registration Editor. Use the "Drivers"
- icon in the Control Panel to install.
-
- Do you want to run the Registration Editor now?
- EndDialog
- Else
- Dialog [YesOrNo1] UseHeader "Install"
- The Synario Design Automation 'Registration Editor' must be run
- after you have installed all of the software you wish to use.
-
- Do you want to run the Registration Editor now?
- EndDialog
- Endif
-
- CallDLL [DLL1] InstallDllCtl3dUnregister [String1]
- UnloadDLL [DLL1]
- UnloadDLL [DLL3]
-
- If [YesOrNo1] = Y
- [String1] := [ExeDirectory]\DIOREG.EXE
- LoadDLL [DLL1] ShadowDirectory\WINEXEC.DLL
- CallDLL [DLL1] InstallDllWinExec [String1]
- UnloadDLL [DLL1]
- EndIf
- Else
- CallDLL [DLL1] InstallDllCtl3dUnregister [String1]
- UnloadDLL [DLL1]
- UnloadDLL [DLL3]
- EndIf
-
- Do DeleteFromShadowDirectory
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure ErrorFreeScript
-
- CallDLL [DLL1] InstallDllCtl3dUnregister [String1]
- UnloadDLL [DLL1]
- UnloadDLL [DLL3]
-
- Do DeleteFromShadowDirectory
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure CheckForWin32s
- If (WindowsNT) .OR. (WindowsVersion >= 3.9)
- ;; Do nothing, Win NT or 95
- Else
- ;; Look for WIN32S on network or CDROM
- [String1] := [InstallFromDirectory]\WIN32S\DISK1\SETUP.EXE
- [Array3][1] := Win32s
- [Array3][2] := Version
- [Array3][3] := 0.0.0.0
- [Array3][4] := [InstallFromDirectory]\WIN32S\DISK1\WIN32S.VER
- GetPrivateProfileString Using [Array3]
-
- ;; Get current WIN32S version
- [Array4][1] := Win32s
- [Array4][2] := Version
- [Array4][3] := 0.0.0.0
- [Array4][4] := [WindowsSystemDirectory]\WIN32S.INI
- GetPrivateProfileString Using [Array4]
-
- If "[Array3][5]" = "0.0.0.0"
- ;; Not a network or CDROM install because WIN32S.VER was not found.
- [String1] := [InstallFromDirectory]\SETUP.EXE
- [Point2]
- Dialog UseHeader "Install"
- Insert Microsoft Win32s Setup Disk 1.
- EndDialog
- [Array3][1] := Win32s
- [Array3][2] := Version
- [Array3][3] := 0.0.0.0
- [Array3][4] := [InstallFromDirectory]\WIN32S.VER
- GetPrivateProfileString Using [Array3]
- If "[Array3][5]" = "0.0.0.0"
- GoTo [Point2]
- EndIf
- EndIf
-
- ;; Call WIN32S setup program if newer version is on disk
- If "[Array3][5]" > "[Array4][5]"
- LoadDLL [DLL3] ShadowDirectory\WINEXEC.DLL
- CallDLL [DLL3] InstallDllWinExec [String1]
- UnloadDLL [DLL3]
- EndIf
- EndIf
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure WelcomeMessage
-
- ;; This proceudre is currently NOT used for the CD-ROM install
-
- Dialog UseHeader "[CommandLine2] Install"
- Welcome to the [CommandLine2] installation.
-
- The minimum system requirements are:
- Microsoft Windows 3.1
- 386 25Mhz CPU
- 8 megabytes of memory
- MS-DOS 5.0
- SVGA 800 by 600
- EndDialog
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure FinishedMessage
-
- Dialog UseHeader "Install"
- Finished installation.
- EndDialog
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure MergeLicense
-
- If [ProductLicenseTemplate] <> BlankString
-
- [String1] := " "
- CallDLL [DLL1] InstallDllGetLicensePath [String1] [ContextName] [LicenseDirectory]
- Do CheckForQuit
-
- [InstallationDirectory] := [LicenseDirectory]
-
- ;; License files are no longer in the compress libraries
- If FileExists [InstallFromDirectory]\[ProductLicenseTemplate]
-
- SetCopyAttrTo 00
- CopyFiles from [InstallFromDirectory] Quietly
- [ProductLicenseTemplate]
- EndCopyFiles
- SetCopyAttrTo 01 ;; read only should be default (NoChange does not work)
-
- [String1] := " "
- CallDLL [DLL1] InstallDllMergeLicense [String1] [ProductLicenseTemplate]
- Do CheckForQuit
-
- DeleteFiles from [LicenseDirectory] Quietly
- [ProductLicenseTemplate]
- EndDeleteFiles
-
- Else
- Dialog UseHeader "Error"
- Cannot find license file [ProductLicenseTemplate].
- EndDialog
- EndIf
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure InstallHyprHelpDll
-
- ;; Copy all files from Install group 14 into shadow directory
- Do QueOption
-
- [NewDll] := "CTL3DV2"
- Do InstallSystemDll
-
- [NewDll] := "DIOHELP"
- Do InstallSystemDll
-
- [NewDll] := "HYPRFIND"
- Do InstallSystemDll
-
- [NewDll] := "HYPRVIEW"
- Do InstallSystemDll
-
- [NewDll] := "HYPERTOP"
- Do InstallSystemDll
-
- [NewDll] := "CNT31"
- Do InstallSystemDll
-
- [NewDll] := "INETWH16"
- Do InstallSystemDll
-
- [NewDll] := "INETWH32"
- Do InstallSystemDll
-
- If FileExists ShadowDirectory\HYPRVIEW.HLP
- SetCopyAttrTo 00
- CopyFiles from ShadowDirectory to [WindowsDirectory] Quietly
- HYPRVIEW.HLP as HYPRVIEW.HLP
- EndCopyFiles
- SetCopyAttrTo 01 ;; read only should be default (NoChange does not work)
-
- [String1] := " "
- [String2] := "Manuals"
- [String3] := [InstallFromDrive]:\Manuals
- CallDLL [DLL1] InstallDllRegisterPath [String1] [ContextName] [String2] [String3]
-
- Endif
-
- DeleteFiles from ShadowDirectory
- CTL3DV2.DL0
- DIOHELP.DL0
- HYPRFIND.DL0
- HYPRVIEW.DL0
- HYPERTOP.DL0
- CNT31.DL0
- INETWH16.DL0
- INETWH32.DL0
- HYPRVIEW.HLP
- EndDeleteFiles
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure InstallMFCredist
-
- ;; Set the Directory path from which files will be pulled from
- [InstallFromDirectory] := [SetupDirectory]\redist
-
- [Number1] := MaxY ;; Get the maximum vertical screen dimension
- If [Number1] = 600 ;; If low resolution mode, change TextBox location
- [Number1] := 92
- Else
- [Number1] := 210
- Endif
-
- ;; The string [ProductValue] is same as directory name that contains
- ;; the current products installation files
- If DriveIsCDROM [InstallFromDrive]
- TextBox @xy(Center,[Number1]) BlackOnLightGray UseHeader "Product: [ProductValue]"
- Installing files for Option: MFC Redistribution Library
- EndTextBox
- Else
- If DriveIsRemoveable [InstallFromDrive]
- TextBox @xy(Center,[Number1]) BlackOnLightGray UseHeader "Product: [ProductValue]"
- Installing files for floppy DiskSet: REDIST
- EndTextBox
- Else
- TextBox @xy(Center,[Number1]) BlackOnLightGray UseHeader "Product: [ProductValue]"
- Installing files for Option: MFC Redistribution Library
- EndTextBox
- Endif
- Endif
-
- InstallSeries Redist promptfor "Please insert disk number 1 in drive [InstallFromDrive]:"
- If WindowsNT
- Do InstallNtDlls
- Else
- If WindowsVersion >= 3.9
- Do InstallW95Dlls
- Else
- Do InstallWin31Dlls
- Endif
- EndIf
-
- ;; Install the HyperHelp dlls
- Do InstallHyprHelpDll
-
- ;; Set the Directory path back to where product files will be pulled from
- [InstallFromDirectory] := [SetupDirectory]\[FromDirectory]
-
- ClearScreen
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure InstallWin31Dlls
-
- QueFiles to ShadowDirectory
- MFCOLEUI.DL0
- MFC30.DL0
- MFC40.DL0
- MSVCRT20.W32
- MSVCRT40.W32
- CTL3DV2.DL0
- EndQueFiles
- GetQuedFiles
-
- DeleteFiles from ShadowDirectory
- MSVCRT20.DL0
- MSVCRT40.DL0
- EndDeleteFiles
-
- RenameFile ShadowDirectory\MSVCRT20.W32 to MSVCRT20.DL0
- RenameFile ShadowDirectory\MSVCRT40.W32 to MSVCRT40.DL0
-
- [NewDll] := "MFCOLEUI"
- Do InstallSystemDll
- [NewDll] := "MFC30"
- Do InstallSystemDll
- [NewDll] := "MFC40"
- Do InstallSystemDll
- [NewDll] := "MSVCRT20"
- Do InstallSystemDll
- [NewDll] := "MSVCRT40"
- Do InstallSystemDll
- [NewDll] := "CTL3DV2"
- Do InstallSystemDll
-
- DeleteFiles from ShadowDirectory
- MFCOLEUI.DL0
- MFC30.DL0
- MFC40.DL0
- MSVCRT20.DL0
- MSVCRT40.DL0
- CTL3DV2.DL0
- EndDeleteFiles
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure InstallW95Dlls
- QueFiles to ShadowDirectory
- MFCOLEUI.DL0
- MFCANS32.DL0
- MSVCRT20.DL0
- MSVCRT40.DL0
- MFC30.DL0
- MFC40.DL0
- MFC42.DL0
- MSVCRT.DL0
- MFCO30.DL0
- MFCUIA32.DL0
- CTL3D32.W95
- EndQueFiles
- GetQuedFiles
-
- DeleteFiles from ShadowDirectory
- CTL3D32.DL0
- EndDeleteFiles
- RenameFile ShadowDirectory\CTL3D32.W95 to CTL3D32.DL0
-
- [NewDll] := "MFCOLEUI"
- Do InstallSystemDll
- [NewDll] := "MFCANS32"
- Do InstallSystemDll
- [NewDll] := "MSVCRT20"
- Do InstallSystemDll
- [NewDll] := "MSVCRT40"
- Do InstallSystemDll
- [NewDll] := "MFC30"
- Do InstallSystemDll
- [NewDll] := "MFC40"
- Do InstallSystemDll
- [NewDll] := "MFC42"
- Do InstallSystemDll
- [NewDll] := "MSVCRT"
- Do InstallSystemDll
- [NewDll] := "MFCO30"
- Do InstallSystemDll
- [NewDll] := "MFCUIA32"
- Do InstallSystemDll
- [NewDll] := "CTL3D32"
- Do InstallSystemDll
-
- DeleteFiles from ShadowDirectory
- MFCOLEUI.DL0
- MFCANS32.DL0
- MSVCRT20.DL0
- MSVCRT40.DL0
- MFC30.DL0
- MFC40.DL0
- MFC42.DL0
- MSVCRT.DL0
- MFCO30.DL0
- MFCUIA32.DL0
- CTL3D32.DL0
- EndDeleteFiles
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure InstallNtDlls
- QueFiles to ShadowDirectory
- MSVCRT20.DL0
- MSVCRT40.DL0
- MFCOLEUI.DL0
- MFC30.DL0
- MFC40.DL0
- MFC42.DL0
- MSVCRT.DL0
- MFCO30.DL0
- MFCUIA32.DL0
- MFCANS32.DL0
- CTL3D32.DL0
- CTL3DV2.DL0
- EndQueFiles
- GetQuedFiles
-
- [NewDll] := "MSVCRT20"
- Do InstallSystem32Dll
- [NewDll] := "MSVCRT40"
- Do InstallSystem32Dll
- [NewDll] := "MFCOLEUI"
- Do InstallSystem32Dll
- [NewDll] := "MFC30"
- Do InstallSystem32Dll
- [NewDll] := "MFC40"
- Do InstallSystem32Dll
- [NewDll] := "MFC42"
- Do InstallSystem32Dll
- [NewDll] := "MSVCRT"
- Do InstallSystem32Dll
- [NewDll] := "MFCO30"
- Do InstallSystem32Dll
- [NewDll] := "MFCUIA32"
- Do InstallSystem32Dll
- [NewDll] := "MFCANS32"
- Do InstallSystem32Dll
- [NewDll] := "CTL3D32"
- Do InstallSystem32Dll
- [NewDll] := "CTL3DV2" ;; This is a 16 bit dll
- Do InstallSystemDll
-
- DeleteFiles from ShadowDirectory
- MSVCRT20.DL0
- MSVCRT40.DL0
- MFCOLEUI.DL0
- MFC30.DL0
- MFC40.DL0
- MFC42.DL0
- MSVCRT.DL0
- MFCO30.DL0
- MFCUIA32.DL0
- MFCANS32.DL0
- CTL3D32.DL0
- CTL3DV2.DL0
- EndDeleteFiles
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Installs a DLL if needed.
- ;; Variable NewDll is the base name of the DLL file. The DLL with
- ;; the extension .DL0 must be in the ShadowDirectory
- ;;
- Procedure InstallSystemDll
- If FileExists [WindowsSystemDirectory]\[NewDll].DLL
-
- [NewVersion] := FileVersionOf ShadowDirectory\[NewDll].DL0
- [OriginalVersion] := FileVersionOf [WindowsSystemDirectory]\[NewDll].DLL
- If [NewVersion] > [OriginalVersion]
-
- SetCopyAttrTo 00
- CopyFiles from ShadowDirectory to [WindowsSystemDirectory] Quietly
- [NewDll].DL0 as [NewDll].DLL
- EndCopyFiles
- SetCopyAttrTo 01
-
- EndIf
-
- Else
-
- SetCopyAttrTo 00
- CopyFiles from ShadowDirectory to [WindowsSystemDirectory] Quietly
- [NewDll].DL0 as [NewDll].DLL
- EndCopyFiles
- SetCopyAttrTo 01
-
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Installs a DLL if needed (in Windows NT directory).
- ;; Variable NewDll is the base name of the DLL file. The DLL with
- ;; the extension .DL0 must be in the ShadowDirectory
- ;;
- Procedure InstallSystem32Dll
-
- If FileExists [WindowsDirectory]\SYSTEM32\[NewDll].DLL
-
- [String1] := " "
- [String2] := ShadowDirectory\[NewDll].DL0
- [String3] := [WindowsDirectory]\SYSTEM32\[NewDll].DLL
- CallDLL [DLL1] InstallDllGetDll32Version [String1] [String2] [String3]
-
- If "[String1]" = "YES"
-
- SetCopyAttrTo 00
- CopyFiles from ShadowDirectory to [WindowsDirectory]\SYSTEM32 Quietly
- [NewDll].DL0 as [NewDll].DLL
- EndCopyFiles
- SetCopyAttrTo 01
-
- Else ;; Check to see if there was an ERROR getting the DLL versions
-
- If "[String1]" = "ERROR"
-
- Dialog UseHeader "Error"
- Can not get DDL FileVersion for ShadowDirectory\[NewDll].DL0
- and [WindowsDirectory]\SYSTEM32\[NewDll].DLL. Unable to install
- DLL, contact Synario Technical Support.
- EndDialog
-
- EndIf
-
- EndIf
-
- Else
-
- SetCopyAttrTo 00
- CopyFiles from ShadowDirectory to [WindowsDirectory]\SYSTEM32 Quietly
- [NewDll].DL0 as [NewDll].DLL
- EndCopyFiles
- SetCopyAttrTo 01
-
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure CheckForWin32s130
-
- If (WindowsNT) .OR. (WindowsVersion >= 3.9)
- ;; Do nothing, Win NT or 95
- Else
- [Array2][1] := Win32s
- [Array2][2] := Version
- [Array2][3] := 0.0.0.0
- [Array2][4] := [WindowsSystemDirectory]\WIN32S.INI
- GetPrivateProfileString Using [Array2]
-
- If [Array2][5] = 0.0.0.0
- Dialog UseHeader "Warning"
- You need to have Win32s installed on your system. Win32s
- version 1.30.172.0 or greater is required. Please install
- Win32s from the original product media (CD-ROM or floppy disks).
- EndDialog
- Else
- If [Array2][5] < 1.30.172.0
- Dialog UseHeader "Warning"
- You need a newer version of Win32s installed on your system.
- Win32s version [Array2][5] was detected, but version 1.30.172.0
- or greater is required. Please install Win32s from the original
- product media (CD-ROM or floppy disks).
- EndDialog
- Endif
- Endif
- Endif
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure InstallAddProgramItem
-
- If FileExists [String1]
- ProgramManagerDDE
- ReplaceItem([String2])
- AddItem([String1],[String2],[String1])
- EndProgramManagerDDE
- EndIf
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure InstallCreateProgramGroup
-
- ProgramManagerDDE
- CreateGroup([ProgramGroupName])
- ShowGroup([ProgramGroupName],1)
- EndProgramManagerDDE
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- Procedure RegisterDIOxfer
-
- RegSetValue ClassesRoot CLSID_DIO_Xfer_Object Data IO Data Transfer Object
- RegSetValue ClassesRoot CLSID_DIO_Xfer_Object\CLSID {1B713A1C-27FD-11ce-8D37-080009965984}
- RegSetValue ClassesRoot CLSID\{1B713A1C-27FD-11ce-8D37-080009965984} Data IO Data Transfer Object
- RegSetValue ClassesRoot CLSID\{1B713A1C-27FD-11ce-8D37-080009965984}\LocalServer [ExeDirectory]\ntolesrv.exe
-
- EndProcedure
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-